import request from '@/utils/request'

/**
 * 微信小程序登录
 * @param {string|object} codeOrData - 微信登录code或包含code的对象
 * @returns {Promise} 返回登录结果，包含token
 */
export function wxMiniLogin(codeOrData) {
  // 处理输入参数的多种情况
  let requestData = {};
  
  if (typeof codeOrData === 'string') {
    // 如果是字符串，作为code使用
    requestData.code = codeOrData;
    console.log('发起微信登录请求，code类型为字符串:', codeOrData.substring(0, 6) + '...');
  } else if (codeOrData && typeof codeOrData === 'object') {
    // 如果是对象，直接使用
    requestData = codeOrData;
    if (requestData.code && typeof requestData.code === 'string') {
      console.log('发起微信登录请求，code类型为对象属性:', requestData.code.substring(0, 6) + '...');
    } else {
      console.error('wxMiniLogin: 对象中缺少有效的code字符串');
    }
  } else {
    console.error('wxMiniLogin: 参数类型错误，需要字符串或对象:', typeof codeOrData);
    return Promise.reject(new Error('登录参数类型错误'));
  }
  
  return request({
    url: '/oauth2/weChat/mini/callback',
    method: 'GET',
    data: requestData
  })
}

/**
 * 登出
 */
export function logout() {
  return request({
    url: '/v1/auth/logout',
    method: 'POST'
  })
}

/**
 * 获取当前登录用户信息
 * @returns {Promise} - 返回用户信息
 */
export function getUserInfo() {
  return request({
    url: '/v1/user',
    method: 'get'
  })
}

// 可以添加其他认证相关的 API 